#!/usr/bin/env bash

# INFO ----------------------------------------------------------------------------------
#
# Nome: 
#   linknet
#   Link Net
# 
# Versão: 
#    0.2
#    Alfa
#
# Autor: 
#    Guilherme Machado 
#    <machadofguilherme@gmail.com>
# 
# Descrição:
#    Programa desenvolvido em Shell Script para auxiliar na conexão à alguma 
#    rede sem-fio. Usa como base outro programa, wpa_supplicant.
#
# ---------------------------------------------------------------------------------------

# TESTES --------------------------------------------------------------------------------

[ "$UID" -ne 0 ] && { printf "\n\tPara executar este programa, logue-se como administrador.\n\n"; exit 1;}

# ---------------------------------------------------------------------------------------

# FUNÇÕES -------------------------------------------------------------------------------

_help ()
{
cat << EOF

LINKNET
-------------------------------------------------------------

       Programa desenvolvido em Shell Script para auxiliar 
       na conexão à alguma rede sem-fio. Usa como base outro 
       programa, wpa_supplicant.


       Uso: linknet [OPÇÃO]
       Exemplo: linknet -fc


       Opções disponíveis:
  -h  --help                Exibe o menu de ajuda e sai.
  -v  --version             Informa a versão do programa 
                            e seu desenvolvedor.
  -si --show-interface      Imprime na tela a interface 
                            de rede.
  -c  --connect             Conecta a internet.
  -fc --first-config        Configuração inicial de rede 
                            e primeira conexão.

-------------------------------------------------------------
                                                         2018

EOF
}

_config ()
{
   printf "\n\tDigite SSID da rede: " && read rede
   printf "\tDigite interface da rede: " && read interface
   echo
   wpa_passphrase "${rede}" >> /etc/wpa_supplicant/wpa_supplicant.conf
   wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i ${interface} -D wext -B
   cp /usr/share/dhcpcd/hooks/10-wpa_supplicant /usr/libexec/dhcpcd-hooks >/dev/null 2>&1
   dhcpcd ${interface} >/dev/null 2>&1
}

_connect ()
{
   printf "\n\tDigite interface da rede: " && read interface
   dhcpcd ${interface} >/dev/null 2>&1
}

_interface ()
{
   ip addr show | grep "w"   
}

_version ()
{
cat << EOF

   LinkNet-0.2-1 | 2018
   Guilherme Machado <machadofguilherme@gmail.com>             

EOF
}

# ---------------------------------------------------------------------------------------

# PROGRAMA ------------------------------------------------------------------------------

case $1 in
   -h|--help) _help ;;
   -v|--version) _version ;;
   -si|--show-interface) _interface ;;
   -c|--connect) _connect ;;
   -fc|--first-config) _config ;;
esac

# ---------------------------------------------------------------------------------------